home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 4 / BBS in a Box - Macintosh - Volume IV (January 1992) (BBS in a Box).iso / Files / Word / A-Ad / actor < prev    next >
Encoding:
Text File  |  1987-05-25  |  15.6 KB  |  336 lines  |  [TEXT/MACA]

  1.  
  2. EDITED TRANSCRIPT  11/16/86
  3. Conference in the AI Forum on CompuServe with language designer Charles Duff.
  4. Mr. Duff discusses Object-Oriented Programming, his language ACTOR, Smalltalk,
  5. his language NEON, and more.
  6. ACTOR for the IBM PC AT\AT is supported by Mr. Duff on the AI Forum.
  7. For information on the $495 product, academic discounts, etc.:
  8.   Charles B. Duff
  9.   The Whitewater Group
  10.   Technology Innovation Center
  11.   906 University Place
  12.   Evanston, IL 60201
  13.   312 - 491 -2370
  14.  
  15. Conference participants are:
  16. Charles Duff 70004,22
  17. Susan Shepard, Primary Sysop, AI Forum  76703,4326
  18. Jeff Gordon, Assistant Sysop  75465,722
  19. Marc Rettig, Technical Editor, AI EXPERT, 76703,1037
  20. John Anderson, Texas Instruments, 76266,1612
  21.  
  22.  
  23. (Duff)  ACTOR is an OOL for the IBM XT/AT that runs under Microsoft Windows. 
  24.  It is presently a single-inheritance, fully object-oriented model.  Syntax is
  25.  algorithmic, Pascal-like.  ACTOR uses a threaded interpreter, is very
  26.  efficient, and is usable on current hardware.  We're targeting it as sort of
  27.  the Rolls-Royce of Windows development systems, of which there are currently
  28.  2.
  29.  
  30. (Shepard) What are the two? 
  31.  
  32. (Duff) Us and Microsoft C.  ACTOR is the only interactive language under
  33.  Windows.  Surprisingly, our performance in demos has proven quite comparable
  34.  to C.  
  35.  
  36. (Shepard) Could you talk a bit about the design details of Smalltalk and what
  37.  you have done to improve upon them and then get into real-time garbage
  38.  collection? 
  39.  
  40. (Duff) Well, to begin, let me say that I'm inevitably cast into this role of
  41.  throwing tomatoes at Smalltalk.  I really *like* Smalltalk and I'm very
  42.  grateful for Alan Kay and PARC, etc.  ST has had a couple of problems, in my
  43.  opinion.  One of course is performance.  Digitalk's very fine implementation
  44.  is the first that is even useful on micros.  Much of the bottleneck is due to
  45.  carrying the late-binding metaphor to the depths of the language.  We have
  46.  addressed this by providing optional early binding in a simple, transparent
  47.  way. Next, Smalltalk is just so foreign - it comes at you with a new syntax,
  48.  philosophy, user-interface and terminology all at once.  It's a tough first
  49.  few months for novices, even dedicated ones.  ACTOR can be used in a
  50.  procedural manner without having to ponder all of the deep philosophical   
  51.  implications of what you're doing until later.  Overall, ACTOR is leaner,
  52.  simpler, and tighter than Smalltalk.  I believe that each new thing added to
  53.  a language must be examined harshly for its effects on complexity,
  54.  learnability and what power it contributes.  In terms of garbage collection,
  55.  we employ an incremental, scavenging collector based upon Baker's paper from
  56.  MIT.  The idea is that you constantly copy the objects that are alive from
  57.  one place to another, naturally compacting and collecting garbage at the same
  58.  time.  It lends itself well to incremental collection and real-time use, and
  59.  is now  finding its way into many Smalltalk and Lisp systems.
  60.  
  61. (Shepard) For those of you who want to read more, on this, and Chuck would you
  62.  agree,an article from ACM Communications called "A Real-Time Garbage
  63.  Collector Based on the Lifetimes of Objects" by Lieberman and Hewitt might be
  64.  informative. June, 1983. I am sure we have questions from Marc Rettig (finger
  65.  pointing)!
  66.  
  67. (Rettig) Chuck, could you describe the library of classes that comes with
  68.  ACTOR?
  69.  
  70. (Duff) Part of that was garbled - I assume you mean library of classes and 
  71.  including about 20 collection classes.  We also support the Windows graphics
  72.  systems via objects that lead "dual lives".  An interesting group of classes
  73.  is the Parser, which provides a state-machine that understands YACC output,
  74.  enabling you to build your own custom grammars very easily.
  75.  
  76. (Anderson) Yes, I was wondering if you had done any "Human Factors" studies on
  77.  the ACTOR user interface and on the decision to build on Windows?
  78.  
  79. (Duff) Nothing scientific, just gut feel.  The Windows decision involved a
  80.  number of issues.  A Windowing interface was considered essential for the
  81.  sophisticated tools we wanted to provide, such as Browsers, Inspectors, etc. 
  82.  In my opinion,  the Windows war was won last winter, when Windows really
  83.  picked up some momentum.  Microsoft has a unique position in the industry 
  84.  in terms of DOS, and that link will become increasingly important.  Right now
  85.  we're seeing a lot of activity among OEMs in doing new device drivers.  For
  86.  instance, I work on a 1200 by 1000 Viking monitor that looks like a Sun
  87.  workstation, and I didn't  have to write a line of code to support it!!! 
  88.  That is a profound advantage for the developer, and also a tremendous
  89.  advantage over languages that own the system, such as Smalltalk.
  90.  
  91.  
  92. (Shepard) John, a follow-up?
  93.  
  94. (Anderson) I am only slightly familiar with Windows and ACTOR.  I was
  95.  wondering about how an end user application might feel in ACTOR.
  96.  
  97.  
  98. (Duff) Windows uses tiled windows, which is somewhat different.  We tend to
  99.  use popups (Mac-like) for a lot of things, because they are more familiar and
  100.  flexible.  You can create just about anything you want, in fact you could do
  101.  an application that was very Macintosh-like if you wish.  We don't prescribe
  102.  how the environment is used. 
  103.  
  104. (Rettig) Chuck, Smalltalk/V will let you have more objects than will fit in
  105.  memory by performing "object swapping".  Does ACTOR have such a thing? 
  106.  
  107. (Duff) You have to understand that Smalltalk/V is at a very different place in
  108.  its life cycle than ACTOR, being a mature product.  We are building a virtual
  109.  object mechanism for a future release, but have some concerns about its value
  110.  in current environments.  For instance, as soon as memory stops being a
  111.  limitation, the number of object pointers is the next wall.  We see the real
  112.  solution as being protected mode, which demands a very different architecture
  113.  overall.  We are actively developing a system that will be more like mini
  114.  -based OOLs, and use the full resources of protected mode.
  115.  
  116. (Rettig) A follow up, Susan?
  117.  
  118.  
  119. (Shepard) Go ahead.
  120.  
  121. (Rettig) I understand your points, Chuck, and they are well taken.  But I want
  122.  to develop an OO database that will have say, 20 meg of objects stored very
  123.  *securely*. That is, I want them to be there even after I recover from a
  124.  pulled plug.  Will your virtual objects be suited for this kind of thing?
  125.  
  126. (Duff) I worked on Tandem systems for a number of years.  Even with redundant
  127.  hardware, that goal was not totally achievable.  Realistically, I think you
  128.  will be hard-pressed to do it on PCs.  Also, how many objects do you envision
  129.  occupying your 20 meg?
  130.  
  131. (Rettig Oh, on the order of tens of thousands.
  132.  
  133. (Duff) Non-protected mode OOLs provide between 16K and 32K objects. The
  134.  virtual object facility that we are planning as an interim step will probably
  135.  not be as secure as you require.  I think that a true OO database facility
  136.  demands more than object-swapping.  You need persistent objects that could 
  137.  occupy a much wider pointer space on disk than in memory. That is a future
  138.  goal of ours, but a separate one.
  139.  
  140. (Rettig) Thank you.  Sounds great.
  141.  
  142. (Shepard) Go ahead, Jeff.
  143.  
  144. (Gordon) Ok... Nice to meet you, Chuck..... Realizing they are, of course, for
  145.  different machines I'd like to hear Chuck's assessment, similar to what he
  146.  provided for ACTOR at the top of the CO, on NEON!, and also, now that ACTOR
  147.  exists, would like to hear what Chuck _now_ thinks of NEON! from a "father's"
  148.  eye view.
  149.  
  150. (Duff) Teenagers these days, they don't listen... Neon was designed with a
  151.  different goal in mind, and as such, I feel it was successful on some counts
  152.  and not on others.  Neon came about because I had to move Typing Tutor III,
  153.  which we had written in Forth on the PC, to the Mac.  The only alternative at
  154.  the time was Lisa Pascal, which was this medieval, undocumented, very slow
  155.  system that seemed like some sort of punishment for something I hadn't done. 
  156.  So I initially set out to bring up a Forth system on the Mac. I had some
  157.  ideas about generic operators that grew out of Forth -- multiple-codefield
  158.  words, and that proved to be a weak version of true polymorphism as seen in
  159.  Smalltalk.  Thus, Norm Iverson and I ended up with Neon, which soon became a
  160.  lot more fun than porting Typing Tutor for the Nth time. Because it grew so
  161.  directly out of Forth, we kept the open stack and RPN notation, which I now
  162.  consider its weakest points. As an OOL, it's a hybrid, which has its pluses
  163.  and minuses. You can still get into trouble, just in a lot more interesting
  164.  and bizarre ways.  I like the relative sparseness and terse quality of the
  165.  language, which it also inherits from Forth.   Actually, on BIX we had a
  166.  panel discussion of OOL people and coded an example in each language. 
  167.  Surprisingly, Neon required the most code, and ACTOR the least (source).
  168.  
  169. (Gordon) Follow-up?
  170.  
  171. (Shepard) Yes
  172.  
  173. (Gordon) Ok.... Any future plans (that you know of) for changing/enhancing
  174.  Neon; and any Mac-related projects on your drawing board? 
  175.  
  176. (Gordon) In terms of Neon, I left Kriya because I hadn't been paid in 14
  177.  weeks, and that has sort of set the tone.  My impression is that it is
  178.  getting very weak support and almost no marketing doesn't bode well for its
  179.  future.  We have definite plans for a Mac version of ACTOR, and one of our
  180.  goals is completely transparent source between Windows and the Mac, which I
  181.  think will make a lot of people happy. 
  182.  
  183. (Gordon) Definitely....usage is rather simple, although today is slow. You
  184.  might consider (ahem) a substantial trade-in offer for folks who'd like to
  185.  trade Neon for ACTOR.  Thanks, Chuck. 
  186.  
  187. (Duff) Good idea. 
  188.  
  189. (Shepard) Marc.
  190.  
  191. (Rettig) Not sure how to phrase this.  I'm wondering about the similarities 
  192.  between the development environments of Smalltalk and ACTOR.  Will I see the
  193.  familiar browers and inspectors?  Will the debugging feel the same?  I know
  194.  you made the syntax more Pascal-like. Does this mean a Pascal or C programmer
  195.  can learn ACTOR faster than SMalltalk?
  196.  
  197. (Duff) Unqualified yes on the last question.  I had a student (who is
  198.  currently writing much of the manual)  pick up ACTOR in a couple of weeks,
  199.  with only Turbo Pascal experience and no OOLs.  The environment is very much
  200.  like ST, only the windowing is much cleaner and faster.  For instance, our
  201.  edit windows keep up with your typing.  There is a browser that allows you to
  202.  examine and edit classes and their methods, an Inspector that provides a
  203.  visual interface to objects' private data, a workspace, and so on. When an
  204.  error occurs, a dialog presents the stack history that led up to the error. 
  205.  Clicking on one of the stack frames converts it into a Context object, and
  206.  starts an Inspector so you can examine the message send in detail, including 
  207.  the receiver, arguments, locals, etc.  It's a lot of fun, because its fast,
  208.  powerful, and easy to use.
  209.  
  210. (Rettig)  Thanks.  Sounds fun, alright.
  211.  
  212. (Rettig) I'll repeat:  Chuck, is ACTOR shipping yet?  If not when?  Have you
  213.  taken lots of orders?
  214.  
  215. (Duff) I'm putting the finishing touches on it right now (or would be if I
  216.  wasn't talking with you all) and we'll be shipping in mid-December.  We have
  217.  had a tremendous amount of interest surprisingly much of it has come from            
  218.  large corporations.  It seems that OOP and Windows are two separate but
  219.  important currents in personal computing today, and we can bring them 
  220.  together.  A few years ago, it seemed that OOP was about as popular in big
  221.  corporations as Scientology, but right now there is really a ground swell of
  222.  interest.
  223.  
  224. (Gordon)  If I remember what I read price tag is $495, and a HD is considered
  225.  a necessity.  True?
  226.  
  227. (Duff) Don't forget $99 for academic users, and anybody who uses Windows
  228.  should have a HD.
  229.  
  230. (Gordon) And of course a 93% discount for those here today?
  231.  
  232.  
  233. (Duff) We can talk about it.
  234.  
  235. (Rettig) You mentioned earlier that ACTOR is "presently" single-inheritance. 
  236.  Can I read into that plans for multiple inheritance in the future? 
  237.  
  238. (Duff) I don't think I know anybody in the OOP community who thinks they know
  239.  the best way to do multiple inheritance.  Flavors is one of the most complex
  240.  things I've ever seen, and I hope no one is controlling ICBMs with Flavors
  241.  code.  I am constantly looking  at M-I alternatives, but as I said before,
  242.  the value it introduces has to be worth the added complexity.  Right now, you
  243.  can build composite objects that own several other classes as instance
  244.  variables, and kind of get around it.  That is well-understood, but not
  245.  terribly pretty.  That's where I'm at.  I'm always open to suggestions! 
  246.  
  247. (Rettig) Thanks.  All good points.
  248.  
  249. (Anderson) I'm sitting here trying to bone up on the article in BYTE.  I'm
  250.  pretty well snowed.  I have had experience with flavors on the lisp machine,
  251.  but I can't say whether I'd trust them in an ICBM situation either.
  252.  
  253. (Duff) Susan, perhaps in the future, when Actor is released, we can  use the
  254.  Forum as a place to post AI-related code, ideas, etc?
  255.  
  256. (Shepard) I would be glad to!
  257.  
  258. (Anderson) I was wondering what plans you had to move ACTOR to a main-frame.
  259.  At TI, we are constanly being asked.
  260.  
  261. (Duff) The real question is, does anyone have plans to move a mainframe to me? 
  262.  Not right now, but it would be possible if we had access to one.  We have
  263.  been approached about doing a UNIX port, and that seems very likely. 
  264.  
  265. (Shepard) Chuck, have you seen SCOOPS? 
  266.  
  267. (Duff) No, I haven't.  Interested, tho. 
  268.  
  269. (Shepard) Chuck - there is a SCOOPS.ARC in DL 2.  John, any comments on that? 
  270.  
  271. (Anderson) I didn't get the end of your question.
  272.  
  273. (Shepard) I was just directing Chuck to the SCOOPS.ARC.
  274. (Anderson) I'm not a compiler expert.  However, we did find that we could do
  275.  without using the SCOOPS package, and still program in an object like
  276.  fashion.  I personally am very interested in objects, but I have been led to
  277.  believe that the penalty in speed and memory is too high. I appologize for
  278.  taking so long to get my thoughts together.
  279.  
  280. (Shepard) No problem, John - that's why we conference.
  281.  
  282. (Shepard) Marc
  283.  
  284. (Rettig) I would be interested in Chuck's response to John's last remark about
  285.  the speed and memory penalties of using an OO language.
  286.  
  287. (Duff) Both Neon and ACTOR have satisfied me that it is possible to do
  288.  extremely practical things in OOLs without the penalties that we've grown
  289.  used to with Smalltalk and Lisp. ACTOR is the first non-hybrid OOL to
  290.  actually perform acceptably in my rather biased opinion.
  291.  
  292. (Shepard) John.
  293.  
  294. (Anderson) I was wondering if you had done any benchmarks.
  295.  
  296. (Duff) Lots of informal ones.  We're still optimizing the compiler, so nothing
  297.  is final.  We run the fib Smalltalk benchmark in under 30 seconds on an 8 mhz
  298.  AT, if that means anything. 
  299.  
  300. (Shepard) FIB(N) = what (N)? 
  301.  
  302. (Duff) I think its fib(12) 1000 times.  It's not a good benchmark in a lot of
  303.  ways, since it doesn't test the garbage collector at all, etc. 
  304.  
  305. (Shepard) Mark A. told me something about a game you had "compared" with
  306.  TurboPROLOG.
  307.  
  308. (Duff) We coded an N-Queens problem in Actor.  It runs in around 6 secs in
  309.  Actor, vs. 3.5 minutes in TurboProlog.  Again, not terribly fair, because its
  310.  hand-coded backtracking vs. totally general backtracking, but I guess
  311.  benchmarks are like that.
  312.  
  313. (Shepard) Instead of MIPS we have MIPP - Meaningless Inventory of Product
  314.  Performance! <grin>
  315.  
  316. (Shepard) Did you have a question, Marc?
  317.  
  318. (Rettig) One last question, and my list is empty.  Chuck, you mentioned BIX. 
  319.  I understand a lot of interesting things in OOP go on over there.  Yes? 
  320.  Also, where is the best place to send you mail?  Do you have a Compuserve ID
  321.  other than the one you are using now? 
  322.  
  323. (Duff) Yeah, the Smalltalk conference on BIX is fairly active level.
  324.  
  325. (Shepard) We've taken a lot of Chuck's time.
  326.  
  327. (Rettig) A thousand thanks, Chuck.
  328.  
  329. (Gordon) <considerate applause from Atlanta>
  330.  
  331. (Anderson) Austin says thanks also.
  332.  
  333.                                   THE END
  334.  
  335.